package Day020_NIO_AIO.demo2_NIO2_AIO.Test3_AIO异步读;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 * @author zhangyan
 * @date 2020/5/13 11:03
 */
public class Client {
    public static void main(String[] args) throws Exception {
        // NIO: SocketChannel表示客户端,不会自动连接服务器,需要调用代码连接

        // 获取SocketChannel对象
        SocketChannel sc = SocketChannel.open();

        // 连接服务器
        sc.connect(new InetSocketAddress("127.0.0.1",666));

        // 创建ByteBuffer缓冲数组
        ByteBuffer b = ByteBuffer.allocate(1024);

        // 往缓冲数组中添加字节数据
        byte[] bytes = "服务器你好,今晚约吗?".getBytes();
        b.put(bytes);// 把字节数据添加在position和limit之间

        // 切换
        b.flip();

        Thread.sleep(5000); // 5秒后写出数据

        // 写出数据
        sc.write(b);// 把b缓冲数组中的字节数据写出  写出position和limit之间的数据

        // 释放资源
        sc.close();
    }
}
